package main

import (
	"encoding/json"
	"fmt"
)

/**
 * 学习了一些基础的语法，开始学习函数了，分享了几个写的函数
 * MD5
 *获取当前的时间戳
 * 获取当前时间字符串
 * 生成签名
 */
//函数用func声明，
//函数可以有一个或者多个参数，需要有参数类型，用，分割
//函数可以有一个或者多个返回值，需要有返回的类型，用，分割
//函数的参数是可选的，返回值也是可选的
//值传递
//传递的参数时，将参数的复制一份传递到函数中，对参数进行调整后，不影响参数的值
//go 语言默认的传递值
//引用传递
//传递参数时，将参数的地址传递到函数中，对参数进行调整后，影响参数的值
//这个时go=struct结构体的例子

type Result struct {
	Code    int    `json:"code"`
	Message string `json:"msg"`
}

func main() {
	var res Result
	res.Code = 200
	res.Message = "success"
	toJson(&res)

	setData(&res)
	toJson(&res)

}

func setData(res *Result) {
	res.Code = 500
	res.Message = "fail"
}

func toJson(res *Result) {
	jsons, errs := json.Marshal(res)
	if errs != nil {
		fmt.Println("json marshal error:", errs)
	}
	fmt.Println("json data：", string(jsons))
}
